// 1646. 获取生成数组中的最大值
// 给你一个整数 n。 按下述规则生成一个长度为 n + 1 的数组 nums：

// nums[0] = 0
// nums[1] = 1
// 当 2 <= 2 * i <= n 时， nums[2 * i] = nums[i]
// 当 2 <= 2 * i + 1 <= n 时， nums[2 * i + 1] = nums[i] + nums[i + 1]
// 返回生成数组 nums 中的 最大 值。

/**
 * @param {number} n
 * @return {number}
 */
var getMaximumGenerated = function (n) {
  if (n < 1) {
    return 0
  }
  if (n < 3) {
    return 1
  }
  let list = []
  list[0] = 0
  list[1] = 1
  let max = 1
  for (let i = 2; i <= n; i++) {
    if (i % 2 === 0) {
      list[i] = list[i / 2]
    } else {
      let mid = Math.floor(i / 2)
      list[i] = list[mid] + list[mid + 1]
    }
    max = list[i] > max ? list[i] :max
  }
  return max
};

var n = 25
console.log(getMaximumGenerated(n))
